//
//  RootViewController.swift
//  上海微博
//
//  Created by apple on 16/5/12.
//  Copyright © 2016年 kuaikuaipao. All rights reserved.
//

import UIKit
  // 其它主控制器的基类
class RootViewController: UIViewController {
    
    
         // Mark：公共属性
    //用户登录标记
    
    var userLogon = false
    
    lazy var tableview = UITableView (frame: CGRectZero, style: .Plain)
    //下拉刷新视图
    lazy var refreshControl = UIRefreshControl ()
    //上拉刷新的视图
    
    lazy var pullupView = UIActivityIndicatorView(activityIndicatorStyle: UIActivityIndicatorViewStyle
    .Gray)
    
    //视图生命周期
    override func loadView() {
        
        //用户登录显示的 tableView /访客视图
        
        userLogon ? setupTableView() : setupVisitorView()
        setupRefreshControl()
        
    
    }
    

    override func viewDidLoad() {
        super.viewDidLoad()

        loadData()
        
    }

   //加载数据的 -真正的数据加载应该放在子类中去实现
    func loadData () {
        
        
        
    }
    
    
}
//设置界面
extension RootViewController {
    //设置访客视图
    
    private func setupVisitorView () {
        
        view = UIView ()
        view.backgroundColor = UIColor .redColor()
    }
    
    //设置表格视图
    private func setupTableView () {
         view = tableview
        
       
        tableview.dataSource = self
        tableview.delegate = self
    }
    //设置刷新控件  刷新控件的子控制器需单独调用此方法  私有函数不能被子类继承
    private func setupRefreshControl() {
        
        
        tableview.addSubview(refreshControl)
        //设置刷新控件的监听方法
        refreshControl.addTarget(self, action: "loadData", forControlEvents: .ValueChanged)
        
        
        //设置上拉刷新的视图
        tableview.tableFooterView = pullupView
    }
    
}



extension RootViewController:UITableViewDataSource,UITableViewDelegate {
    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 0
    }
    
    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        return UITableViewCell ()
    }
    
    
    
        
    func  tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
        // <NSIndexPath: 0xc000000001200016> {length = 2, path = 0 - 9}0 9
        let section = tableview.numberOfSections-1
        
        
        
        let row = tableview.numberOfRowsInSection(section)-1
        //判断是否是最后一行
        if section == indexPath.section && row == indexPath.row && !pullupView.isAnimating(){
            
                pullupView.startAnimating()
            
                loadData()
                print("上拉刷新")
            
        }
        
//         print(" \(indexPath)\(section) \(row) ")
    }
    
    
}
